layui.use('layim', function(layim){
    var layer = layui.layer;
    var $ = layui.$;
    var socket;
    if(typeof(WebSocket) == "undefined") {
        layer.msg("您的浏览器不支持WebSocket");
    }else{
        socket = new WebSocket("ws://127.0.0.1/layimSocket/"+$("#userid").html());
        //打开事件
        socket.onopen = function() {
            layer.msg("聊天服务连接成功");
        };
        //关闭事件
        socket.onclose = function() {
            layer.msg("服务器连接已关闭");
        };
        //发生了错误事件
        socket.onerror = function() {
            layer.msg("服务器通信异常")
        };
        //离开页面时，关闭socket
        window.onbeforeunload = function () {
            closeWebSocket();
            layer.msg("服务器连接已关闭");
        }
    }
    function closeWebSocket() {
        socket.close();
    }
    //基础配置
    layim.config({
        //初始化接口
        init: {
            url: '/userInfo/getUserInfo'
        }

        //查看群员接口
        ,members: {
            url: '/pages/json/getMembers.json'
            ,data: {}
        }
        //上传图片接口
        ,uploadImage: {
            url: '/upload/image' //（返回的数据格式见下文）
            ,type: '' //默认post
        }

        //上传文件接口
        ,uploadFile: {
            url: '/upload/file' //（返回的数据格式见下文）
            ,type: 'post' //默认post
        }

        //,isAudio: true //开启聊天工具栏音频
        //,isVideo: true //开启聊天工具栏视频

        //扩展工具栏
        // ,tool: [{
        //     alias: 'code'
        //     ,title: '代码'
        //     ,icon: '&#xe64e;'
        // }]

        //,brief: true //是否简约模式（若开启则不显示主面板）
        ,title: 'Work-IM' //自定义主面板最小化时的标题
        //,right: '100px' //主面板相对浏览器右侧距离
        //,minRight: '90px' //聊天面板最小化时相对浏览器右侧距离
        ,initSkin: '2.jpg' //1-5 设置初始背景
        //,skin: ['aaa.jpg'] //新增皮肤
        //,min: true //是否始终最小化主面板，默认false
        ,notice: true //是否开启桌面消息提醒，默认false
        //,voice: false //声音提醒，默认开启，声音文件为：default.mp3

        ,msgbox: layui.cache.dir + 'css/modules/layim/html/msgbox.html' //消息盒子页面地址，若不开启，剔除该项即可
        ,find: layui.cache.dir + 'css/modules/layim/html/find.html' //发现页面地址，若不开启，剔除该项即可
        ,chatLog: layui.cache.dir + 'css/modules/layim/html/chatlog.html' //聊天记录页面地址，若不开启，剔除该项即可

    });
    var tabid ;
    var chat = 0;
    layim.on('chatChange', function(res){
        tabid = res.data.id;
        if (chat === 0) {
            var status = "离线";
            $.ajax({
                url : "/IsChatStatus/isStatus",
                data : {userid : res.data.id},
                async :false,
                dataType : "json",
                success : function (data) {
                    var json =JSON.parse(data);
                    if (json.status){
                        status = '在线';
                    }
                },error : function () {
                    Feng.error("网络异常")
                }
            })
            var type = res.data.type;
            if(type === 'friend'){
                layim.setChatStatus('<span style="color:#FF5722;">'+status+'</span>'); //模拟标注好友在线状态
            }
            chat = 1;
        } else {
            chat = 0;
        }
    });

    // 发送消息
    layim.on('sendMessage', function(res){
        socket.send(JSON.stringify({
            type: 'chatMessageText'
            ,data: res
            , tabid : tabid
        }));
    })

    //获得消息事件
    socket.onmessage = function(res){
        var json = JSON.parse(res.data);
        // 实时监控好友上下线
        if (json.noOnline !== undefined){
            if (json.msg === '0'){
                layim.setFriendStatus(json.noOnline, 'online');
            } else {
                layim.setFriendStatus(json.noOnline, 'offline');
            }
        } else {
            layim.getMessage(json);
        }
    };
});